Jak haszować tekst algorytmem MD5 [Delphi 8]
Adam Boduch
Platforma .NET udostępnia klasę, która w znacznym stopniu ułatwia haszowanie tekstu, algorytmem MD5. Klasa MD5CryptoServiceProvider, bo o niej mowa, znajduje się w przestrzeni System.Security.Cryptography.
W trakcie korzystania z klasy, nie możemy podać łańcucha tekstu do zaszyfrowania, lecz dane w postaci tabicy bajtów (typ Byte). Z tego względu będziemy musieli skorzystać dodatkowo z klas ASCIIEncoding oraz StringBuilder. Na listingu poniżej znajduje się kompletny kod programu konsolowego:
program MD5Demo;
{$APPTYPE CONSOLE}
uses
system.Text,
System.Security.Cryptography;
function Md5Crypt(CryptString : String) : String;
var
MD5 : MD5CryptoServiceProvider;
ASCII : ASCIIEncoding;
ByteArray : array of Byte;
function ConvertToString(Value : array of byte) : String;
var
i : Integer;
Output : StringBuilder;
begin
Output := StringBuilder.Create(System.Array(Value).Length);
for I := 0 to System.Array(Value).Length -1 do
begin
output.Append(Value[i].ToString('X2'))
end;
Result := Output.ToString;
end;
begin
ASCII := ASCIIEncoding.Create;
{ tworzenie klasy }
MD5 := MD5CryptoServiceProvider.Create;
{ zaszyfrowanie tekstu }
ByteArray := MD5.ComputeHash(ASCII.GetBytes(CryptString));
{ konwertowanie tekstu na czytelny łańcuch }
Result := ConvertToString(ByteArray).ToLower;
end;
begin
Console.Write('Podaj tekst do zaszyfrowania: ');
Console.WriteLine(
MD5Crypt(Console.ReadLine)
);
Console.ReadLine;
end.
w 2005 i 2006 podejrzewam, że też już jest :p (wiem, że te kommenty były już dawno, kiedy nie było jeszcze D2005) :)
to może się przerzucisz na .NET?
Dobre i to, może i nie jest ale zmienia postać tekstu :)
MD5 nie jest algorytmem szyfrowania! :P
Fajne ale szkoda że w 8
Poprawka: haszujacy...